﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Drawing;

namespace WF_Loadout_Editor
{
    public enum ModType
    {
        Warframe = 0,
        Rifle,      // 1
        Shotgun,    // 2
        Pistol,     // 3
        Melee,      // 4
        Sentinel,   // 5
        None        // 6
    }

    public class BaseMod
    {
        private ModType type;
        public ModType Type
        {
            get { return type; }
            set { type = value; }
        }

        private string name;
        public string Name
        {
            get { return name; }
            set { name = value; }
        }

        private Image picture;
        public Image Picture
        {
            get { return picture; }
            set { picture = value; }
        }

        private string description;
        public string Description
        {
            get { return description; }
            set { description = value; }
        }

        private Polarity polarityType;
        public Polarity Polaritytype
        {
            get { return polarityType; }
            set { polarityType = value; }
        }

        private float statModifier;
        public float StatModifier
        {
            get { return statModifier; }
            set { statModifier = value; }
        }


        private float currentStat;
        public float CurrentStat
        {
            get { return currentStat; }
            set { currentStat = value; }
        }

        private int currentRank;
        public int CurrentRank
        {
            get { return currentRank; }
            set { currentRank = value; }
        }

        private int maxRank;
        public int MaxRank
        {
            get { return maxRank; }
            set { maxRank = value; }
        }

        private int baseCost;
        public int BaseCost
        {
            get { return baseCost; }
            set { baseCost = value; }
        }

        private int cost;
        public int Cost
        {
            get { return cost; }
            set { cost = value; }
        }

        public BaseMod()
        {

        }

        public BaseMod(string name1, string description1, ModType type1, Polarity polarityType1, float statModifier1, float currentStat1, int currentRank1, int maxRank1, int baseCost1)
        {
            name = name1;
            description = description1;
            type = type1;
            polarityType = polarityType1;
            type = type1;
            statModifier = statModifier1;
            currentStat = currentStat1;
            currentRank = currentRank1;
            maxRank = maxRank1;
            baseCost = cost = baseCost1;
        }

        virtual public Object ModifyStat(Object obj)
        {
            return obj;
        }
    }
}
